import { z } from 'zod';
import { createZodDto } from 'nestjs-zod';

/**
 * 定义查询猫咪时的请求数据结构
 * 使用 Zod 可以在运行期对请求体做强类型校验，并给出清晰错误提示
 */
export const queryCatListSchema = z
	.object({
		// pageNum 必须是整数，且大于等于 1
		pageNum: z
			.number()
			.int({ message: 'pageNum 字段必须是整数' })
			.min(1, { message: 'pageNum 字段最小不能小于 1' }),
		// pageSize 必须是整数，且大于等于 1
		pageSize: z
			.number()
			.int({ message: 'pageSize 字段必须是整数' })
			.min(1, { message: 'pageSize 字段最小不能小于 1' }),
	})
	.required();

// 根据 Zod 模式生成对应的 DTO 类
export class QueryCatListDto extends createZodDto(queryCatListSchema) {}
